The process of finding and fixing a problem (i.e., a coding error or bug) in a computer program or application is often a large part of software development. Typically, in order to debug such a problem during production, the problem must be reproduced so that a developer or user can investigate. Conventionally, in an attempt to reproduce the problem, developers try to replicate the circumstances and environment in which the problem occurred.